'use strict';

var path = require('path');
var gulp = require('gulp');
var conf = require('./conf');
var browserSync = require('./browserSync');

function isOnlyChange(event) {
  return event.type === 'changed';
}

gulp.task('watch', function() {

  /**
   * 监听html页面文件
   */
  gulp.watch([path.join(conf.paths.src, '/scripts/**/*.html')], function(event) {
      if (isOnlyChange(event)) {
        gulp.start('html', 'main');
      }
    })
    .on("change", browserSync.reload); //同步到浏览器

  /**
   * 监听样式css文件
   */
  gulp.watch([
      path.join(conf.paths.src, '/styles/**/*.less'),
      path.join(conf.paths.src, '/styles/**/*.css')
    ], function(event) {
      if (isOnlyChange(event)) {
        gulp.start('styles', 'main');
      }
    })
    .on("change", browserSync.reload); //同步到浏览器

  /**
   * 监听业务逻辑js文件
   */
  gulp.watch(path.join(conf.paths.src, '/scripts/**/*.js'), function(event) {
    if (isOnlyChange(event)) {
      gulp.start('scripts', 'main');
    }
  }).on("change", browserSync.reload); //同步到浏览器

  /**
   * 监听依赖包js文件
   */
  gulp.watch('bower.json', function(event) {
      if (isOnlyChange(event)) {
        gulp.start('inject', 'main');
      }
    })
    .on("change", browserSync.reload); //同步到浏览器

  /**
   * 监听其他静态文件
   */
  gulp.watch([
      path.join(conf.paths.src, '/404.html'),
      path.join(conf.paths.src, '/**/*.{ico,jpg,png}')
    ], function(event) {
      if (isOnlyChange(event)) {
        gulp.start('other');
      }
    })
    .on("change", browserSync.reload); //同步到浏览器

  // /**
  //  * 测试监听文件
  //  */
  // gulp.watch(path.join(conf.paths.src, '/404.html'), function(event) {
  //     if (isOnlyChange(event)) {
  //       gulp.start('test:task');
  //     }
  //   })
  //   .on("change", browserSync.reload); //同步到浏览器

});
